package dao;

import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;
import javax.persistence.Query;
import javax.swing.JOptionPane;
import model.Produto;
import util.Conexao;

/**
 *
 * @author Klecio
 */
public class ProdutoDAO extends GenericDao<Produto> {

    Conexao c = new Conexao();
    EntityManagerFactory factory = Persistence.createEntityManagerFactory("Controle_de_EstoquePU");
    EntityManager manager = factory.createEntityManager();

    public void salvar (Produto produto){
        gravar(produto);
    }

    public void alterar (Produto produto){
        alterar(produto);
    }

    public void excluir (Produto produto){
        Produto p = listar(produto);
        remover(p);
    }

    public Produto listar (Produto produto){
        return getEntityManager().find(Produto.class, produto.getIdProduto());
    }

    public int PegaUltimoRegistro() {
        Query query = manager.createQuery("SELECT max(p.idProduto) FROM Produto p");
        Integer codigo = (Integer)query.getSingleResult();
        if(codigo == null){
            return 1;
        }else{
            return codigo + 1;
        }
    }
    
    public Produto buscarPorDescricao(String nome){
        Query query = manager.createQuery("SELECT p FROM Produto p WHERE p.descricao = '"+nome+"'");
        Produto p = (Produto) query.getSingleResult();
        if(p == null){
            JOptionPane.showMessageDialog(null, "Produto não encontrado");
            return null;
        }
        else{
            return p;
        }
    }

}
